The present invention relates to image processing and in particular to means for texture mapping in the rendering of two dimensional pixel images, where those images are made up of a number of polygons defined in three-dimensional (object) space and projected into two-dimensional (screen) space, and pixel texture values (texels) from a two dimensional texture map are mapped onto pixel positions within the projected two dimensional polygons.
The process of texture mapping is well known, in essence comprising the step of wrapping a two-dimensional picture or texture over a geometric surface in order to give a greater degree of realism and often a reduction in the geometric complexity of the object. Basic texture mapping techniques are described for example in “Computer Graphics: Principles and Practice” by Foley, van Dam, Feiner and Hughes, published by Addison Wesley 1990, ISBN 0-201-12110-7, at pages 741-744.
An increasingly common use for texture mapping of polygons is in the generation of so-called virtual environments which a user is then enabled to navigate or even interact with, for example in a flight simulator or virtual reality and games applications. While generally hosted on a single system, these generated virtual environments are not limited to a single user and, with the increase in communications via local or large area data networks, a single virtual environment may be visited simultaneously by users from different countries or continents. As with all such data networks, however, there is a limit to the available bandwidth which raises the need to find a balance between the frequency at which updated images of the virtual environment may be transmitted across the network and the level of detail that may be represented.
The problem may be reduced when the format of data storage and representation for such virtual environments is at least partially standardized, allowing for greater interchange between systems of different manufacturers and simplification of standard commands, as well as a reduction in the necessity for individually tailored translation utilities. With at least partial standardization, the necessary configuration of a browser for accessing such data, whether in a hardware or software implementation or a mixture of the two, becomes simpler.
A notable example of standardization in the field of data defining virtual environments is the so-called Virtual Reality Modelling Language (VRML) as described, for example, in the VRML standard, version 2.0, issued as ISO/IEC WD14772 on Aug. 4, 1996. VRML is a file format for describing interactive three-dimensional objects and worlds to be experienced on the Internet/World Wide Web and it is generally analogous to the way HTML (HyperText Markup Language) is used to describe documents for transmission over the Internet. In order to simplify the specification of how objects appear within a virtual environment, it is a known technique in formats such as VRML to restrict such objects to constructions from a limited set of “building blocks” such as rods, cones and cubes, which may be simply specified in relatively few parameters.
In an Internet White Paper issued by S3 Incorporated in January 1997, entitled “Delivering Compelling 3D Content on the Web” it was proposed to extend this standardization to textures and, in order to reduce the volume of data transmitted per scene, to provide users with a local library of the standard textures in the form of a collection of texture maps to be held on the users hard drive. Operationally, it was suggested that the users system would first check the local hard drive for a specified texture before calling for it to be transmitted from the virtual environment host.
While maintaining a local store of textures does greatly reduce the volume of data sent via data network, it also generates its own problems. Apart from the expected difficulties of persuading different system manufacturers to agree on a standardized texture set, the principle problem is the amount of space on a users hard disk that will be taken up if the set contains many different textures. This problem is compounded by the need to hold each texture at at least two different resolutions to enable interpolation and extrapolation techniques to be used to create textures at desired resolution levels. Furthermore, while the volume of data network traffic is reduced, there is an increase within the users system, between a graphics engine and the hard disk.